//
//  MKUICollectionViewCellBase.h
//  MKUI
//  集合cell基类，提供了缓存size的机制
//  Created by 苏尚进 on 2020/10/6.
//  Copyright © 2020 moon. All rights reserved.
//

#import <UIKit/UIKit.h>
#import "MKUICollectionViewCellProtocol.h"
#import "MKUICollectionViewCellModel.h"
#import "MKUIPreCompile.h"
NS_ASSUME_NONNULL_BEGIN

@interface MKUICollectionViewCellBase : UICollectionViewCell<MKUICollectionViewCellProtocol>
@property(nonatomic,strong,nullable) __kindof  MKUICollectionViewCellModel *collectionCellModel;//数据模型
@property(nonatomic,readonly) BOOL isCellModelChanged;//cellmodel是否有变化

//是否缓存sizeThatFits:的结果，默认为YES
@property(nonatomic,readonly,class) BOOL useCachedFitedSize;
@property(nonatomic,readonly) BOOL isSharedInstance;
//单例，用于计算动态尺寸(实现使用MKDEF_SINGLETON_SUBCLASS)
MKAS_SINGLETON(MKUICollectionViewCellBase)

- (void)customReloadCellModel;//cellModel变更时，更新视图内容。@override
- (void)customLayoutSubviews;//cellModel变更时，重新布局视图。@override

//计算动态尺寸,该方法会在dynamicSizeWithCollectionView的block中执行。@override
- (CGSize)customSizeThatFits:(CGSize)size;
@end
NS_ASSUME_NONNULL_END
